As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as, but not limited to, financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems often use an array of storage device, such as a Redundant Array of Independent Disks (RAID), for example, for storing information. Arrays of storage devices typically utilize multiple disks to perform input and output operations and can be structured to provide redundancy which may increase fault tolerance. Implementations of storage device arrays may employ a number of techniques to provide for redundancy, including striping, mirroring, and/or parity checking. For example, as known in the art, RAIDs may be implemented according to numerous RAID standards, including without limitation, RAID 0, RAID 1, RAID 0+1, RAID 3, RAID 4, RAID 5, RAID 6, RAID 01, RAID 03, RAID 10, RAID 30, RAID 50, RAID 51, RAID 53, RAID 60, RAID 100, etc.
There are several techniques for writing data to the storage device using a controller (e.g., a RAID controller), operating in two different write modes. The controller may control transfer of data to the storage device arrays and/or write caches. For example, in a write-through mode, data or program instruction sent from a sender (e.g., processor, host, etc.) are received at the controller and the controller may pass the information directly to the intended storage device. The storage device may store the received data and may send an acknowledgment back to the controller, which forwards the acknowledgment to the sender. While the handshaking between the intended storage device and sender guarantees the integrity of the transfers, the write-through process often adds latency to the process.
In a write back mode, the controller assumes ownership of receive data and/or program instructions received from a sender. Rather than immediately storing the data onto a storage device arrays (e.g., hard disk drives), for example, the controller may store the data in a write cache and signal to the host operating system that the data has been successfully stored. This significantly speeds up the acknowledgment back to the host operating system that the data has been successfully stored. Then, when it is convenient, the data in the write cache is flushed to the storage device, where it becomes “permanently” stored.
However, until the write cache data is actually stored on the storage device, it remains “dirty.” The term “dirty” indicates that write cache data has yet to be written to a storage device. Since cache memories are often volatile memories that need electric power in order to store data, this data is vulnerable to being permanently lost if there is a power outage or other power event (e.g., sleep mode and/or standby).
Current systems use a battery-backed storage device that provide power upon power loss to the components information handling system, including, for example, the RAID systems. There are several problems with using battery back storage devices including reliability, shelf-life, and the need for faster I/O speed which is often hampered with the use of batteries.